package com.ccrfid.rmc6.service.alarm;

import com.ccrfid.rmc6.appconfig.exception.pojo.AppException;
import com.ccrfid.rmc6.entity.alarm.AlarmNotifyRecordEntity;
import com.ccrfid.rmc6.entity.alarm.AlarmNotifyStrategyEntity;
import com.ccrfid.rmc6.entity.alarm.AlarmRecordEntity;
import com.ccrfid.rmc6.repository.search.SearchCriteria;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface AlarmNotifyService {

    Page<AlarmNotifyStrategyEntity> getAlarmNotifyStrategyPage(SearchCriteria criteria, Pageable pageable);

    AlarmNotifyStrategyEntity getAlarmNotifyStrategyById(Long strategyId);

    AlarmNotifyStrategyEntity createAlarmNotifyStrategy(AlarmNotifyStrategyEntity entity) throws AppException;

    AlarmNotifyStrategyEntity updateAlarmNotifyStrategy(Long strategyId, AlarmNotifyStrategyEntity entity) throws AppException;

    Boolean deleteAlarmNotifyStrategies(List<Long> idList) throws AppException;

    List<AlarmNotifyStrategyEntity> getAlarmNotifyStrategyList();

    AlarmNotifyRecordEntity createAlarmNotifyRecord(AlarmNotifyRecordEntity entity);

    void postAlarmNotify(Long personnelId, AlarmRecordEntity recordEntity);

    List<AlarmNotifyRecordEntity> getAllByRecordId(Long alarmRecordId);

    AlarmNotifyRecordEntity getAlarmNotifyRecordById(Long alarmNotifyRecordId);
}
